package com.artron.mediaartron.data.net.api;

import com.artron.baselib.entity.Response;
import com.artron.mediaartron.data.entity.LoginData;
import com.artron.mediaartron.data.entity.UploadIcon;

import okhttp3.MultipartBody;
import retrofit2.http.Field;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import rx.Observable;

import static android.R.attr.password;

/**
 * Class description here
 *
 * @author doing
 * @version 1.0.0
 * @since 2017-10-17.
 */

public interface LoginApi {

    @POST("login")
    Observable<Response<LoginData>> login(@Query("mobile") String mobile, @Query("pwd") String password);

    @POST("register")
    Observable<Response> register(@Query("mobile") String mobile, @Query("captcha") String captcha,
                                  @Query("pwd") String password);

    @POST("captcha")
    Observable<Response> getCaptcha(@Query("mobile") String mobile);

    @POST("resetPwd")
    Observable<Response> resetPassword(@Query("mobile") String mobile, @Query("captcha") String captcha
            , @Query("pwd") String pwd);


    @GET("userInfo")
    Observable<Response<LoginData>> getUserInfo(@Query("passId") String passId);

    @POST("modifyPwd")
    Observable<Response> modifyPwd(@Query("utoken") String utoken, @Query("oldPwd") String oldPwd,
                                   @Query("pwd") String pwd);

    @Multipart
    @POST("modifyUserPhoto")
    Observable<Response<UploadIcon>> modifyUserPhoto(@Query("utoken") String token, @Part MultipartBody.Part file);

    @POST("modifyUserInfo")
    Observable<Response> modifyUserInfo(@Query("utoken") String token, @Query("nickname") String nickname, @Query("sex") String sex,
                                        @Query("birthday") String birthday, @Query("provinceCode") String provinceCode,
                                        @Query("cityCode") String cityCode, @Query("countyCode") String countyCode,
                                        @Query("signature") String signature);

    @POST("thirdlogin")
    Observable<Response<LoginData>> thirdLogin(@Query("uid") String uid, @Query("platform") String platform, @Query("photoUrl") String photoUrl);

    /**
     * 绑定手机号
     *
     * @param utoken
     * @param mobile
     * @param captcha
     * @param pwd
     * @return
     */
    @POST("bindMobile")
    Observable<Response> bindMobile(@Query("utoken") String utoken,
                                    @Query("mobile") String mobile,
                                    @Query("captcha") String captcha,
                                    @Query("pwd") String pwd);

    /**
     * 修改手机号
     *
     * @return
     */
    @POST("modifyMobile")
    Observable<Response> modifyPhone(@Query("utoken") String utoken ,@Query("mobile") String mobile,
                                    @Query("captcha") String captcha);
}
